Direct data transfer between slave devices

ABSTRACT

In one aspect, a method of transferring data over a plurality of communication lines is described. A first command is sent from a master device coupled with the communication lines to a first destination slave device coupled with the communication lines instructing the first destination slave device to listen to and write data from the communication lines starting at a first time. A second command is sent from the master device to a second source slave device coupled with the communication lines instructing the second source slave device to read and output first data onto the communication lines starting at or after the first time. In this way, the first data output from the second source slave device beginning at the first time is stored by the first destination slave device beginning at the first time without requiring first transferring the data to the master device or any other device.

FIELD OF THE INVENTION

The present invention relates generally to transferring data overcommunication lines between passive slave devices. More particularly,the invention relates to host device initiated data transferring betweenpassive slave devices without first transferring the data to the hostdevice or any other intermediary storage device.

BACKGROUND

It has become commonplace to connect a host processor to differentdevices using a plurality of conducting wires referred to as a “bus”that typically complies with well known standards. The devices connectedto the bus may include memory/storage devices, communications devices,sensing devices, etc. and these devices may be either fixed orremovable. In most situations, some or all of the wires that define thebus are shared amongst any and/or all of the devices that are connectedto the bus. Since the devices coupled to the bus share the sameconducting wires, each device is typically assigned a unique ID oraddress on the bus and is configured to respond only to messages thatare addressed to that unique ID/address. In this way, multiple devicescan share the same conducting wires that form the bus resulting in asubstantially reduced bus size than would otherwise be required.

Typically, a master/slave bus protocol is adopted for the bus.Master/slave is a model for a communication protocol in which one deviceor process has unidirectional control over one or more other devices. Ina conventional system, once a master/slave relationship between devicesor processes is established, the direction of control is always from themaster to the slaves, i.e. a slave cannot initiate a transaction. Insome systems a master is elected from a group of eligible devices withthe other devices acting in the role of slaves. In conventional systems,data is not transferred directly between slave devices; rather, data istypically passed over the common bus from a source slave storage deviceto a host controller or other intermediary where the data is temporarilycached before being re-output by the host controller over the common busand targeted towards a destination slave storage device where the datais then read from the bus and stored.

While conventional systems work well, it is desirable to reduce the hostCPU resources required for transferring data between devices as well asto reduce the bus utilization and memory requirements of the host and/orother temporary storage devices.

SUMMARY OF THE DESCRIBED EMBODIMENTS

In one aspect, a method of directly transferring data between a firstand a second device coupled with each other and with a master devicewith one or more communication lines is described. According to variousembodiments, the master device instructs the first device to listen tothe one or more communication lines. The second device transmits dataonto the one or more communication lines. In this way, the datatransmitted onto the one or more communication lines by the seconddevice is received by the first device without further intervention bythe master device.

In a similar aspect, a method of transferring data over a plurality ofcommunication lines is described. According to various embodiments, afirst command is sent from a master device coupled with thecommunication lines to a first destination slave device coupled with thecommunication lines. The first command instructs the first destinationslave device to listen to and write data from the communication linesstarting at a first time. A second command is also sent from the masterdevice to a second source slave device coupled with the communicationlines. The second command instructs the second source slave device toread and output first data onto the communication lines starting at orafter the first time. In this way, the first data output from the secondsource slave device beginning at the first time is stored by the firstdestination slave device beginning at the first time without requiringfirst transferring the first data to the master device or any othertemporary storage device.

In another aspect, a method of communicating over a plurality ofcommunication lines is described. According to various embodiments, afirst command is sent from a master device coupled with thecommunication lines to a first slave device coupled with thecommunication lines. The first command instructs the first destinationslave device to listen to the communication lines starting at a firsttime. A second command is also sent from the master device to a secondslave device coupled with the communication lines. The second commandinstructs the second slave device to output a third communication ontothe communication lines starting at or after the first time. In thisway, the third communication output from the second slave devicebeginning at the first time is read by the first slave device beginningat the first time without requiring first transferring the thirdcommunication to the master device or any other device.

In yet other aspects, systems are described for implementing each of theaforementioned methods. In one embodiment, a system is described thatincludes a first addressable destination slave device configured tostore data, a second addressable source slave device configured to storedata and including first data stored therein, and a master devicearranged to manage the first and second slave devices. The systemfurther includes a plurality of communication lines that couple themaster device and at least each of the first and second slave devices.According to an embodiment, the master device is further arranged tosend a first command to the first slave device instructing the firstslave device to listen to and write data from the communication linesbeginning at a first time and a second command to the second slavedevice instructing the second slave device to read and output the firstdata onto the communication lines beginning at or after the first time,such that the first data is transferred from the second source slavedevice to the first destination slave device without requiring firsttransferring the first data to the master device or any other storagedevice.

In another embodiment, the system includes a first addressable slavedevice, a second addressable slave device, a master device arranged tomanage the first and second slave devices, and a plurality ofcommunication lines that couple the master device and at least each ofthe first and second slave devices. In an embodiment, the master deviceis further arranged to send a first command to the first slave deviceinstructing the first slave device to listen to the communication linesbeginning at a first time and a second command to the second slavedevice instructing the second slave device to output a thirdcommunication onto the communication lines beginning at or after thefirst time, wherein the third communication output from the second slavedevice beginning at the first time is read by the first slave devicebeginning at the first time without requiring first transferring thethird communication to the master device or any other device.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention, reference should be made tothe following detailed description taken in conjunction with theaccompanying drawings, in which:

FIG. 1 illustrates a simplified block diagram of a system in accordancewith an embodiment of the present invention.

FIG. 2 illustrates s simplified block diagram of an example storagedevice in accordance with an embodiment of the present invention.

FIG. 3 shows a flowchart illustrating a process of transferring datadirectly between storage devices.

FIG. 4 illustrates a simplified block diagram of a system including aplurality of storage devices arranged into a daisy chain configurationin accordance with an embodiment of the present invention.

Like reference numerals refer to corresponding parts throughout thedrawings.

DETAILED DESCRIPTION OF THE DESCRIBED EMBODIMENTS

Reference will now be made in detail to particular embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with thefollowing particular embodiments, it will be understood that they arenot intended to limit the invention to the described embodiments. To thecontrary, the described embodiments are intended to cover alternatives,modifications, and equivalents as may be included within the spirit andscope of the invention as defined by the appended claims.

Aspects of the present invention describe methods, devices and systemsfor transferring data over communication lines that couple two or moreslave devices with a master device, and in particular embodiments, twoor more storage devices with a host device. Particular embodiments ofthe invention are discussed below with reference to FIGS. 1 through 4.The following description focuses on embodiments in which the storagedevices are interconnected via a memory/storage related bus to a hostdevice serving as a master device and in which data is transferreddirectly from one storage device to another without first transferringthe data to the host device or any other intermediate device, and inwhich the slave storage devices are incapable of initiating the transferbetween themselves. However, those skilled in the art will readilyappreciate that the detailed description given herein with respect tothese figures is for explanatory purposes as the invention extendsbeyond these limited embodiments. By way of example, in an alternateembodiment, the storage devices are not interconnected with aconventional bus architecture; rather, each device is connected onlywith its neighboring devices.

Although it is contemplated that any suitable storage devices may beused, in the following description of particular embodiments, thestorage devices are presumed to be non-volatile storage devices.However, the invention may also be implemented on volatile storagedevices. By way of example, the non-volatile storage devices may beFLASH or EEPROM based storage devices. The storage devices may also beeither removable or non-removable (fixed) devices. As is well known,non-removable devices are not intended for subsequent removal from thebus once they have been connected with the bus whereas removable devicesare configured so as to be readily removed or added to the bus.

One type of removable device that is well suited for use as a storagedevice according to the present invention is a memory card. Memory cardsare commonly used to store digital data for use with various electronicsproducts. The memory card is often removable from the host system so thestored digital data is portable. The memory cards can have a relativelysmall form factor and be used to store digital data for variouselectronics products and systems including personal computers, notebookcomputers, hand-held computing devices, cameras, cellular telephones,media players/recorders (e.g., MP3 devices), personal digital assistants(PDAs), network cards, network appliances, set-top boxes, and otherhand-held or embedded devices.

The storage devices described herein may be compatible with any memorycard format or protocol, such as the secured digital (SD) protocol usedfor managing digital media such as audio, video, or picture files. Thestorage device may also be compatible with a multi media card (MMC)memory card format, a compact flash (CF) memory card format, a flash PC(e.g., ATA Flash) memory card format, a smart-media memory card format,or with any other industry standard specifications. One supplier ofthese memory cards is SanDisk Corporation of Milpitas, Calif. Thestorage device may also apply to other erasable programmable memorytechnologies, including but not-limited to electrically-erasable andprogrammable read-only memories (EEPROMs), EPROM, MRAM, FRAMferroelectric and magnetic memories. Note that the storage deviceconfiguration does not depend on the type of removable memory, and maybe implemented with any type of memory, whether it being a flash memoryor another type of memory. The storage device may also be implementedwith a one-time programmable (OTP) memory chip and/or with a 3dimensional memory chip technology.

FIG. 1 illustrates a simplified block diagram of a master/slave system100 in accordance with an embodiment of the present invention. By way ofexample, according to particular embodiments described herein, a slavedevice may take the form of a local storage device such as but notlimited to any of the aforementioned storage devices described abovewhile the master device takes the form of a host device such as but notlimited to any of the aforementioned host devices described above. Asdescribed above in the background, master/slave is a model for acommunication protocol in which one device or process has unidirectionalcontrol over one or more other devices. In a conventional system, once amaster/slave relationship between devices or processes is established,the direction of control is always from the master to the slaves, i.e. aslave cannot initiate a transaction. In some systems, a master iselected from a group of eligible devices with the other devices actingin the role of slaves. Accordingly, master/slave system 100 (hereinafteralso referred to simply as system 100) includes at least master device102 (hereinafter also referred to as host device 102 or host controller102), first slave device 104 (hereinafter also referred to as storagedevice 104) and second slave device 106 (hereinafter also referred to asstorage device 106) that relate to each other at least by way of aconventional master/slave paradigm.

System 100 also includes a number of communication or signal lines 108(hereinafter referred to as bus 108) used to connect host device 102with peripheral storage devices 104 and 106. It should be noted thateven though only two peripheral storage devices are shown, more or fewerstorage devices can readily be coupled to bus 108. The actual number ofsignal lines that constitute bus 108 may also be widely varied. By wayof example, some modern buses have a relatively small number of signallines (e.g. 8-16 signal lines), while other modern buses may have over100 lines that may themselves be logically divided into subsets of linesthat effectively act as sub-buses (e.g., an address bus, a control bus,a data bus, etc.).

Each storage device typically includes a corresponding unique andpermanent device identifier. In some bus protocols, the permanent deviceidentifier is used to identify the device in bus communications. Inother protocols, the host controller will assign a temporary deviceidentifier and/or an associated set of addresses to each of the devicescoupled to the bus. Typically, such temporary device identifiers and/oraddresses are assigned upon connection and initialization of therespective storage device 104 or 106 with the bus 108 and hostcontroller 102, or in the case of a removable memory card, uponinsertion of the card into an associated card reader. Although thespecifics of the bus protocol and the memory management protocol willvary based on the nature of the particular bus and storage devicesemployed, the host controller 102 is typically aware of each storagedevice's respective device identifier(s).

Typically, a specific device attached to the bus 108 will know whetherit is supposed to respond to a particular communication or command basedupon the communication sent from the host 102, which typically usesdevice identifiers and/or addresses in targeting communications/commandsto specific storage devices. That is, in some protocols, eachcommunication will generally include a device identifier that informsthe storage devices whether or not they are the target of thecommunication. In other protocols, the device identifier is notexplicitly sent as part of each memory related communication. Rather,the command may identify an address to which the command (e.g., a read,write or erase command) is addressed. In general, devices that are notidentified or addressed by the communication will simply ignore thecommunication.

In the illustrated embodiment, communications are sent over the sharedbus 108 to the storage devices 104 and 106 according to a suitable busprotocol. The bus protocol specifies how information is communicatedover the bus. Again, suitable bus protocols include the Secure DigitalCard (SD) protocol, the Multi Media Card (MMC) protocol and theUniversal Serial Bus (USB) protocol, although a wide variety of otherbus protocols may be used as well. Furthermore, as will be appreciatedby those familiar with the art, current storage devices employ a widevariety of different architectures and it is expected that newarchitectures will continue to be developed. In general, the presentinvention may be employed in conjunction with a wide variety ofdifferent types of memory, so long as the storage device has suitableprocessing power.

FIG. 2 is a block diagram that illustrates the general structure of astorage device 200 representative of each of the storage devices 104 and106 in more detail in accordance with one embodiment of the presentinvention. In various embodiments, storage device 200 may be aconventional or legacy storage device. As previously mentioned, thestorage device 200 may be either a removable or a non-removable device.In the illustrated embodiment, the storage device 200 is a conventionalremovable FLASH memory card and generally includes a memory controller214 and a mass storage region 216. The memory controller 214 includes amemory manager 218 and protocol parser 220.

As will be understood by those familiar with the art, the protocolparser 220 is configured to analyze communications sent over the bus108. More specifically, the protocol parser 220 is configured to analyzea communication sent from the host 102 and determine whether storagedevice 200 is an intended target of the bus communication based on adevice identifier or address specified as part of the communication. Ifthe bus communication is a memory operation directed towards storagedevice 200, the communication is passed to the memory manager 218 whichin turn performs the requested operation accessing mass storage region216. Other instructions directed at the storage device 200 are respondedto by either the protocol parser 220 or the memory manager 218 asappropriate. Instructions and communications directed at other devicesare generally simply ignored by storage device 200.

In embodiments where at least one of the storage devices in removable,the storage device identifier is preferably a permanent deviceidentifier associated with the targeted storage device. As will befamiliar to those skilled in the art, many types of storage devices suchas FLASH memory cards have an associated permanent device identifierthat may be used for this purpose. However, in embodiments that utilizestorage devices that do not include permanent device identifiers, adevice identifier assigned by the host 102 may be used. Here it shouldbe noted that in some cases, a single physical device may include two ormore addressable storage regions (or devices) within the physicaldevice. In this case, each storage region may have a correspondingdevice identifier and/or set of logical addresses. Additionally, if aparticular command is addressed to all storage devices on the bus 108,then either a broadcast identifier that indicates that the command wasaddressed to all devices on the bus, or a list of all of the targeteddevice identifiers may be used.

Generally, a communication such as a command transmitted from the host102 includes an operation identifier that identifies the type of busprotocol operation to be performed. The identified operations may bememory operations such as read, write and erase operations; memorymanagement commands such as an instruction for a targeted storage deviceto create a partition; initialization and authentication requests;interrupts; acknowledgements; error signals and any other bus relatedcommands or operations.

Referring back to system 100, the host 102 controls various operationsof the storage devices 104 and 106. By way of example, the hosttransmits commands to the storage devices instructing the storage deviceto write data, read data and erase along with other housekeepingoperations. Commands are communicated from the host 102 over the bus 108to one or more targeted storage devices connected with the bus. Only thestorage device(s) targeted by a given command (e.g., by a deviceidentifier and/or address within the command) accepts the command andexecutes an operation based on the command. It should be noted that, inthe described embodiments, only the host 102 is capable of transmittingcommands over the bus 108.

For the purpose of illustrating a basic example of a particularembodiment of the present invention, a process 300 of writing data fromsource storage device 104 to destination storage device 106 is describedwith reference to the flowchart of FIG. 3 and the system of FIG. 1.Process 300 begins at 302 with host 102 sending a LISTEN/WRITE commandover bus 108 targeting storage device 106 and instructing storage device106 to listen to the bus and write data from the bus into the device'smemory. In one embodiment, the LISTEN/WRITE command instructs storagedevice 106 to begin listening to the bus 108 at a specific time T1 andwrite data from the bus after time T1 into the device's memory. Morespecifically, in embodiments in which a time division multiplexingprotocol is used to organize the transfer of data over the bus 108, thehost 102 may instruct the storage device 106 to begin listening to thebus 108 at a specific time slot X1. In yet another embodiment, the slavedevice 106 can be instructed to start listening immediately and waituntil data is available on the bus 108 to write.

Host 102 also sends a READ command over bus 108 at 304 targeting storagedevice 104 and instructing storage device 104 to read data from thedevice's memory and to output the data onto bus 108. In one embodiment,the READ command instructs storage device 104 to begin reading andoutputting data onto the bus 108 at a specific time, preferably at orafter T1 so as to not lose any data. Again, in embodiments in which atime division multiplexing protocol is used to organize the transfer ofdata over the bus 108, the host 102 may instruct the storage device 104to begin reading and outputting data onto the bus 108 at the specifictime slot X1. In another embodiment, the slave device 104 is instructedto read and output data onto the bus immediately.

In this way, storage device 106 pulls the data directly output fromstorage device 104 from the bus 108 and writes the data into memory.More particularly, unlike in conventional arrangements, the data outputfrom storage device 104 is not first temporarily cached in the host 102or in any other device prior to being pulled from bus 108 and writteninto storage device 106. Thus, while the host 102 initiates thetransaction of data between storage device 104 and storage device 106,the host 102 is not involved in storing and/or transmitting data.

Thus, while various master/slave bus protocols (such as the SD protocol)dictate that only the host may initiate transactions and send commands,the invention circumvents this conventional paradigm. That is, theinvention enables the direct transfer of data between storage device 104and 106 while enabling the use of legacy devices and master/slaveprotocols as each storage device presumes that the data it is sending orreceiving over the bus 108 is being sent to or received from the host102. It should also be appreciated that, in this way, the total quantityof data transmitted over the bus 108 may be approximately cut in half;that is, since data may be written directly from one storage device toanother storage device, rather than first cached and then re-transmittedby the caching device, the amount of data transmitted over the bus 108for a given transaction may be roughly cut in half and hence, the totalbandwidth required may be similarly reduced. As a result, the datatransfer rate between the storage devices themselves may be increasedand, furthermore, the processor requirements of the host 102 may bereduced.

In one embodiment, storage device 104 continues reading and outputtingdata onto the bus 108 until such time as the host 102 issues aSTOP_READING command at 306 targeting device 104 and instructing storagedevice 104 to stop reading and outputting data onto the bus 108.Similarly, storage device 106 continues pulling data from the bus 108until such time as the host 102 issues a STOP_LISTENING command at 308targeting device 106 and instructing storage device 106 to stop pullingdata from the bus.

In an alternate embodiment, the READ command also instructs storagedevice 104 to continue outputting data onto the bus 108 until such pointas a duration D1 has elapsed. Similarly, the LISTEN/WRITE command mayalso instruct storage device 106 to continue pulling data from the bus108 until a duration D2 has elapsed. In a preferred embodiment, D2 is atleast as long as D1 so as to not lose any data. By way of example, ifthe host 102 knows the amount of data to be transferred (e.g., thenumber of bits) and the operating frequency of the bus 108, then thehost can calculate the duration of time needed to transfer the data andsubsequently instruct storage device 104 to output data for thisduration and instruct storage device 106 to continue listening andwriting the data for this duration.

In another alternate embodiment, the LISTEN/WRITE command instructsstorage device 106 to listen to the bus 108 during specific time slotsXn, which may or may not be consecutive. Data on the bus 108 during thetime slots Xn are then written into the device's memory. In thisalternate embodiment, the READ command similarly instructs storagedevice 104 to begin reading and outputting data onto the bus 108 duringthe specific time slots Xn. Again, it should be noted that the timeslots may not be consecutive. More particularly, the host 102 mayinstruct the storage device 104 to output data A onto the bus 108 intime slots X1, X2, X3 and X4 which, again, may not in some embodimentsbe consecutive. The host 102 would then instruct storage device 106 tolisten and pull data from the bus 108 during time slots X1, X2, X3 andX4.

The foregoing description, for purposes of explanation, used specificexamples to provide a thorough understanding of the invention. However,it will be apparent to one skilled in the art that the specific detailsare not required in order to practice the invention. Thus, the foregoingdescriptions of specific embodiments of the present invention arepresented for purposes of illustration and description. They are notintended to be exhaustive or to limit the invention to the precise formsdisclosed. It will be apparent to one of ordinary skill in the art thatmany modifications and variations are possible in view of the aboveteachings.

For instance, although process 300 was described with reference totransferring data from a single storage device 104 to another singlestorage device 106, it should be appreciated that the host 102 may issuea multicast or broadcast command instructing a plurality of storagedevices to listen to the bus at specific times and write the associateddata to memory. In this way, multiple copies of the data can be storedon a plurality of devices simultaneously.

Additionally, although the foregoing description has been described inthe context of reading data from one memory device and transferring datato another memory device where it is to be stored, it should also beappreciated that aspects of the present invention are applicable todevices other than those especially configured as storage devices. Byway of example, aspects of the present invention may be useful intransferring communications and data to and from external networks. Morespecifically, a first slave device coupled with a bus may be a networkcard acting as a network bridge to an external network or protocol, suchas WiMax, Wi-Fi or Bluetooth, and the second slave device may be astorage device coupled with the bus. By way of example, a master devicemay instruct the first slave device to directly pass data it receives orhas received from an external network through the bus to the secondslave device, or instruct the second slave device to send data to thefirst slave device to be communicated over the external network. In suchembodiments, the network card may be a card on the SD bus, using SDIOprotocol.

Furthermore, although foregoing description has been described in termsof a particular bus/device configuration, in alternate embodiments thestorage devices may be connected in other suitable configurations orarrangements. By way of example, in the embodiment illustrated in FIG.4, each device, including slave storage devices 404, 406 and 408, isconnected serially in a daisy chain arrangement. Such an arrangement maybe desirable in various high speed consumer electronics applications,among others. Although only three storage devices are shown in theembodiment illustrated in FIG. 4, it will be appreciated that more orfewer devices may be arranged in the daisy chain arrangement. Ingeneral, two to five devices are typically connected in such anarrangement.

By daisy chain arrangement, it is meant that pins of one device areelectrically connected to pins of a neighboring device. The connectioncan be either by hard soldering, by a printed circuit layout or byconnection of socket pins. For example, a second set of pins fromstorage device 404 can be connected to a first set of pins from storagedevice 406 via a set of communication lines 432, a second set of pins ofstorage device 406 can be connected to a first set of pins of storagedevice 408 via a set of communication lines 434, and so on. In this way,all of the storage devices other than the first and last device in thedaisy chain arrangement are connected to two immediately adjacentneighboring devices. Unlike the other storage devices, however, thefirst set of pins of storage device 404 are connected via a set ofcommunication lines 430 with host 402 serving as the master device. Inone embodiment, all of the storage devices share a clock; however, thisis not a requirement as each device may generate its own clock.

In the illustrated embodiment, there is no common bus that interconnectsthe storage devices 404, 406 and 408 with one another and to the host402. Rather, in this configuration, each device passes to the nextdevice downstream in the chain the commands from the host 402 that arenot addressed to itself. That is, each storage device (e.g., storagedevices 406 and 408) other than the first device in the chain (e.g.,storing device 404) is coupled to the host 402 by means of any upstreamdevices in the chain. That is, communications or information passed fromthe host 402 to a particular storage device must first pass sequentiallythrough all other upstream devices in the chain. In effect, the storagedevices 404, 406 and 408 along with communication lines 430, 432 and 434form a virtual communication bus that serves to pass communications andinformation from the host to the storage devices and from the storagedevices to the host.

A more detailed description of such a daisy chain arrangement can befound in copending application Ser. No. 11/927,108 filed on Oct. 29,2007 and entitled, “ADDRESSING MULTIPLE DEVICES ON A SHARED BUS,” whichclaims priority from provisional application No. 60/979,372 filed onOct. 11, 2007 and entitled “ADDRESSING AN ADDRESS-LESS DEVICE ON ASHARED BUS;” and copending application Ser. No. 11/928,110 filed Oct.30, 2007 and entitled “SIGNALING AN INTERRUPT REQUEST THROUGH DAISYCHAINED DEVICES,” which claims priority from provisional application No.60/981,772 filed on Oct. 22, 2007 and entitled “SIGNALING AN INTERRUPTREQUEST THROUGH DAISY CHAINED DEVICES;” all of which are herebyincorporated by reference herein in their entirety for all purposes.

In one example embodiment in which the storage devices 404, 406 and 408are arranged into a daisy chain configuration, a host 402 may transmit aLISTEN/WRITE command down the string of daisy-chained devices. By way ofexample, host 402 may transmit a LISTEN/WRITE command targeting storagedevice 406 over communication lines 430 where it is first received bystorage device 404. Storage device 404 may then pass the LISTEN/WRITEcommand over communication lines 432 where the command is then receivedat target storage device 406. The LISTEN/WRITE command may instruct thestorage device 406 to listen to communication lines 434 at a specifictime and to write data from the communication lines 434 beginning at thespecific time. Host 402 may also transmit a READ command targetingstorage device 408 over communication lines 430. The READ command may bepassed by storage devices 404 and 406 and along communication lines 432and 434 before reaching target storage device 408 and may instructstorage device 408 to read data from memory and output the data ontocommunication lines 434 at a specific time. In this way, storage device406 may listen to the communication lines 434 at the specific timeinstructed by the LISTEN/WRITE command and write the data it pulls fromthe communication lines 434, which has been directly read from storagedevice 408 and output onto communication lines 434 by storage device408, without first having the data be transferred to the host 402.

In other embodiments, the storage devices 404, 406 and 408 could bearranged into a daisy chain configuration as in FIG. 4 while a separatecommon bus interconnects the storage devices with themselves and to thehost 402. In this way, unlike conventional arrangements, the signal orcommunication path between the daisy chained devices is separate anddistinct from a bus and therefore, again unlike conventional approaches,does not consume bus resources that could otherwise be used to passinformation and/or data between the storage devices and host 402.

The embodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. A method of transferring data between a firstdevice and a second device coupled with each other and with a masterdevice with one or more communication lines, comprising: instructing thefirst device, by the master device, to listen to the one or morecommunication lines until a duration D2 of time has elapsed; andinstructing the second device to continue transmitting data onto the oneor more communication lines until such point as at least a duration D1of time has elapsed, wherein the data transmitted onto the one or morecommunication lines by the second device is received by, the firstdevice, without further intervention by the master device, wherein themaster device determines the duration D1 based upon an amount of data tobe transferred between the first and second devices and an operatingfrequency of the one or more communication lines, and wherein theduration D2 is at least as long as the duration D1.
 2. A The method asrecited in claim 1, further comprising: dividing the duration D2 of timeinto a plurality of time slots, wherein any data on the one or morecommunication lines is received by and stored at the first device onlyduring the plurality of time slots.
 3. The method as recited in claim 2,further comprising: dividing the duration D1 of time into a plurality oftime slots, wherein the second device transmits data onto the one ormore communication lines only during the plurality of time slots.
 4. AThe method as recited in claim 1, wherein the master device, firstdevice and second device communicate according to the Secured Digital(SD) protocol.
 5. A method of transferring data over a plurality ofcommunication lines, comprising: sending a first command from a masterdevice coupled with the communication lines to a first destination slavedevice coupled with the communication lines, the first commandinstructing the first destination slave device to listen to and writedata from the communication lines starting at a first time; and sendinga second command from the master device to a second source slave devicecoupled with the communication lines, the second command instructing thesecond source slave device to read and output first data onto thecommunication lines starting after the first time; wherein the firstdata output from the second source slave device beginning after thefirst time is stored by the first destination slave device beginningafter the first time without requiring first transferring the first datato the master device or any other storage device.
 6. A The method asrecited in claim 5, wherein the master device is a host device andwherein the first and second slave devices are local storage devices. 7.A The method as recited in claim 5, wherein at least one of the firstand second slave devices is a removable device configured for readyremoval from and addition to various communication lines.
 8. A Themethod as recited in claim 5, wherein the communication lines form ashared bus.
 9. A The method as recited in claim 5, wherein the first andsecond slave devices are two of a plurality of addressable devicesarranged in a daisy chain configuration such that each of theaddressable devices is connected with at least one neighboring devicevia one or more of the communication lines, wherein each device isconnected with no more than two immediately adjacent neighboringdevices, and wherein each device other than the last device in the chainpasses communications, including commands, that are not targeted toitself to the next device in the chain via the communication lines thatconnect neighboring devices with one another.
 10. A The method asrecited in claim 5, wherein the master device, first slave device andsecond slave device communicate according to the Secured Digital (SD)protocol.
 11. A The method as recited in claim 5, wherein the firstslave device is unaware that the first data is coming directly from thesecond slave device and not from the master device.
 12. A The method asrecited in claim 5, wherein the first command instructs the first slavedevice to listen to and write data from the communication lines for afirst prescribed duration beginning after the first time.
 13. A Themethod as recited in claim 5, wherein the second command instructs thesecond slave device to output data onto the communication lines for asecond prescribed duration beginning after the first time.
 14. A Themethod as recited in claim 5, further comprising sending a third commandfrom the master device to the second slave device that instructs thesecond slave device to stop outputting data onto the communication linesat a second time.
 15. A The method as recited in claim 14, furthercomprising sending a fourth command from the master device to the firstslave device that instructs the first slave device to stop listening tothe communication lines at or after the second time.
 16. A The method asrecited in claim 5, wherein the first command is multicast or broadcastto multiple slave devices including the first slave device substantiallysimultaneously and wherein the first command instructs at least aplurality of the multiple slave devices to listen to and write data fromthe communication lines starting at the first time such that the firstdata can be stored by the plurality of the multiple slave devicessubstantially simultaneously.
 17. A method of communicating over aplurality of communication lines, comprising: sending a first commandfrom a master device coupled with the communication lines to a firstslave device coupled with the communication lines, the first commandinstructing the first slave device to listen to the communication linesstarting at a first time; and sending a second command from the masterdevice to a second slave device coupled with the communication lines,the second command instructing the second slave device to output a thirdcommunication onto the communication lines starting after the firsttime; wherein the third communication output from the second slavedevice is read by the first slave device beginning substantially at thesecond time without requiring first transferring the third communicationto the master device or any other device.
 18. A The method as recited inclaim 17, wherein the at least one of the first and second slave devicesis a network device.
 19. A The method as recited in claim 18, whereinthe network device serves as a network bridge between the a bus and aremote network.
 20. A The method as recited in claim 19, wherein thefirst slave device is a network card, the method further comprisingoutputting a fourth communication onto the remote network in response tothe third communication.
 21. A The method as recited in claim 19,wherein the second slave device is a network card and wherein the thirdcommunication includes data received from the remote network by thesecond slave device.
 22. A system, comprising: a first addressabledestination slave device configured to store data; a second addressablesource slave device configured to store data and including first datastored therein; a master device arranged to manage the first and secondslave devices; and a plurality of communication lines that couple themaster device and at least each of the first and second slave devices;and wherein the master device is further arranged to send a firstcommand to the first slave device instructing the first slave device tolisten to and write data from the communication lines only until aduration D2 of time has elapsed beginning at a first time and a secondcommand to the second slave device instructing the second slave deviceto read and output the first data onto the communication lines beginningat or after the first time only until a duration D1 of time has elapsed,such that the first data is transferred from the second source slavedevice to the first destination slave device without requiring firsttransferring the first data to the master device or any other storagedevice, wherein the master device determines the duration D1 based uponan amount of data to be transferred between the first and second slavedevices and an operating frequency of the plurality of communicationlines, and wherein the duration D2 is at least as long as the durationD1.
 23. A The system as recited in claim 22, further comprising whereinthe master device is further arranged to: dividingdivide the duration D2of time into a plurality of time slots, wherein any data on theplurality of communication lines is received by and stored at the firstslave device only during the plurality of time slots.
 24. A The systemas recited in claim 22, wherein at least one of the first and secondslave devices is a removable device configured for ready removal fromand addition to various communication lines.
 25. A The system as recitedin claim 22, wherein the communication lines form a shared bus.
 26. AThe system as recited in claim 22, wherein the first and second slavedevices are two of a plurality of addressable devices arranged in adaisy chain configuration such that each of the addressable devices isconnected with at least one neighboring device via one or more of thecommunication lines, wherein each device is connected with no more thantwo immediately adjacent neighboring devices, and wherein each deviceother than the last device in the chain passes communications, includingcommands, that are not targeted to itself to the next device in thechain via the communication lines that connect neighboring devices withone another.
 27. A The system as recited in claim 22, wherein the masterdevice, first slave device and second slave device communicate accordingto the Secured Digital (SD) protocol.
 28. A The system as recited inclaim 22, wherein the first slave device is unaware that the first datais coming directly from the second slave device and not from the masterdevice.
 29. A The system as recited in claim 22, wherein the firstcommand instructs the first slave device to listen to and write datafrom the communication lines for a first prescribed duration beginningat the first time.
 30. A The system as recited in claim 22, wherein thesecond command instructs the second slave device to read and output dataonto the communication lines for a second prescribed duration beginningat or after the first time.
 31. A The system as recited in claim 22,wherein the master device is further arranged to send a third command tothe second slave device that instructs the second slave device to stopoutputting data onto the communication lines at a second time.
 32. A Thesystem as recited in claim 31, wherein the master device is furtherarranged to send a fourth command to the first slave device thatinstructs the first slave device to stop listening to the communicationlines at or after the second time.
 33. A The system as recited in claim22, wherein the first command is multicast or broadcast to multipleslave devices including the first slave device substantiallysimultaneously and wherein the first command instructs at least aplurality of the multiple slave devices to listen to and write data fromthe communication lines starting at the first time such that the firstdata can be stored by the plurality of the multiple slave devicessubstantially simultaneously.
 34. The method system as recited in claim22, further comprising wherein the master device is further arranged to:dividingdivide the duration D1 of time into a plurality of time slots,wherein the second slave device transmits data onto the plurality ofcommunication lines only during the plurality of time slots.
 35. Themethod of claim 1, wherein at least one of the first and second devicescomprises three-dimensional memory.
 36. The method of claim 5, whereinat least one of the first and second slave devices comprisesthree-dimensional memory.
 37. The method of claim 17, wherein at leastone of the first and second slave devices comprises three-dimensionalmemory.
 38. The system of claim 22, wherein at least one of the firstand second slave devices comprises three-dimensional memory.